FIG. 1 shows an example structure of a position control apparatus of the related art.
A position control apparatus 100 receives, from an upper-level, numerical control apparatus (NC apparatus) or the like, a position command value Xc for each sampling period. A position feedback value Xp is subtracted from the position command value Xc, and the result is multiplied by a position loop gain Kp, to calculate a motor velocity command value Vc. A velocity detection value Vm is subtracted from the motor velocity command value Vc, to obtain an input of a velocity controller 102, which then calculates a torque command value τc. A current controller 104 controls a motor current so that a motor 106 generates a torque corresponding to the torque command value τc. The motor 106 is supplied with the current controlled by the controller 104, to generate a torque, and rotates. A rotary encoder 108 coupled to the motor 106 detects a rotational position of the motor. The velocity detection value Vm is calculated from a difference in the detected value for each sampling period. A table 112 coupled to the motor 106 via a ball screw 110 moves linearly in response to the rotation of the motor 106. An optical scale 114 reads a displacement of a bed and the table 112, and calculates a position Xf (hereinafter referred to as “scale position Xf”) of the table 112 based on the displacement. When a rigidity of a feeding mechanism is sufficiently high, the motor control apparatus can use the scale position Xf as the position feedback value Xp without further processing. However, in a large-size machine such as a planar type machine tool, the rigidity of the feeding mechanism tends to be low, and the scale position Xf tends to have a large phase delay with respect to the position Xm (hereinafter referred to as “motor position Xm”) of the table calculated from the rotational position of the motor 106. As a result, the control may become unstable; for example, vibration may be generated in the position feedback loop. In consideration of this, a value obtained by low-pass filter processing a difference between the motor position Xm and the scale position Xf, to remove a high frequency component, is added to Xm, to obtain Xp.
JP 2016-076119 A discloses a motor control apparatus which detects a position of a table of a machine tool by an encoder which detects a rotational position of a driving motor and a scale which detects the position of the table.
In a machining path of die machining or the like, in the operation for each axis, there may be cases where reciprocation of a very small section sequentially appears. In an example die machining shown in FIG. 2, with a Y-axis being a pick direction, cutting is executed by operations on an X-axis and a Z-axis. In this case, an operation range for the X-axis is large, and, as a consequence, a velocity for the X-axis is also high. On the other hand, in the Z-axis, the operation range is small, and, consequently, the velocity is small (FIG. 3).
In a machining path having a small operation range and a small velocity for a certain axis, there may be cases where lubrication insufficiency is generated in a driving system. In particular, in a case where the table is guided by a friction guide surface, if the machining path is such that a very small section is reciprocated with a low velocity, lubrication becomes insufficient on the friction guide surface, and a coefficient of friction tends to be increased. When the coefficient of friction is increased, a sliding resistance applied on the table is also increased. When the sliding resistance is increased, a table driving system such as a ball screw or the like is elastically deformed (deflection is generated), and thus, a relative displacement between the table position and the motor position is increased (FIG. 4).
The increase in a position error appears as a streak on the machined surface. As such a streak would require additional machining, this is uneconomical.
As a method of reducing an inversion delay, a method exists in which an amount of correction corresponding to a frictional force corresponding to a movement direction is added during calculation of a velocity error.
With the correction, during the inversion, the motor is inverted before the table. When the sliding resistance is small and the deflection is small, the table starts to invert quickly after the motor. However, when the sliding resistance is large and the deflection is large, because the motor position Xm is inverted by a correction value Vd, a position error calculation result of the position feedback is reduced, and the increase in the velocity command Vc is suppressed. On the other hand, because the velocity Vm is already inverted by the inversion operation of the motor, the increase in the velocity error is further suppressed, and the increase in the torque τc is suppressed. As a result, a delay is caused until the motor moves to resolve the deflection, and a delay is also caused until a sufficient torque for inverting the table is generated against the frictional force after the movement. During this delay, the position command Xc continues to progress, and a follow delay is caused in the scale position Xf. If the amount of correction is set large corresponding to a case where the sliding resistance is large, the amount of correction becomes excessive when the sliding resistance is small, causing an overshoot of the position of the table, which then causes a position error. Thus, an excessive setting is not possible.
In consideration of this, in the related art, a method is proposed in which the amount of correction is calculated by setting “(deviation between a scale position and a motor position)/(torque command value)” as rigidity (=an inverse of a spring constant), and calculating:Amount of Correction=(initial deviation in first direction/corresponding torque command value in the first direction)×current torque command value−“current deviation.”
However, because there is a pitch error in the ball screw, as shown in FIG. 7, the deviation between the scale position and the motor position differs for each position of the table. In particular, when a stroke is long such as in the case of a planar type machine tool, the deviation may vary by a value exceeding 100 microns. Further, in the ball screw, the motor position changes as shown in FIG. 6, due to thermal expansion. The “initial deviation” and the “current deviation” presumed in the above calculation may fail to be reproduced, even for the same torque command value. Thus, there has been a problem in that the correction advantage cannot be stably achieved.